package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_VACACIONES_PARAMETRIZACION {

    private int ANO;
    private int HORAS;
    private Conexion con = null;

    public RHH_VACACIONES_PARAMETRIZACION(Conexion con) {
        this.con = con;
    }

    public RHH_VACACIONES_PARAMETRIZACION(int ANO, int HORAS) {
        this.ANO = ANO;
        this.HORAS = HORAS;
    }

    public boolean Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_VACACIONES_PARAMETRIZACION (ANO, HORAS) VALUES (" + ANO + "," + HORAS + ")";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_VACACIONES_PARAMETRIZACION where ANO= " + getANO();
        con.EjecutarSentencia(consulta);
        return true;
    }
    public boolean EliminarTODO() throws SQLException {
        String consulta = "delete from BROKER.RHH_VACACIONES_PARAMETRIZACION ";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_VACACIONES_PARAMETRIZACION> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_VACACIONES_PARAMETRIZACION ORDER BY ANO";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_VACACIONES_PARAMETRIZACION> lista = Cargar(rs);
        return lista;
    }
    
    public int getHorasDeVacacion(int ano) throws SQLException {
        if(ano>0)
        {
            String consulta = "select HORAS from BROKER.RHH_VACACIONES_PARAMETRIZACION where ANO="+ano+" ORDER BY ANO";        
            ResultSet rs = con.EjecutarConsulta(consulta);
            if(rs.next())
                return rs.getInt("HORAS");
            else
            {
                consulta = "select HORAS from BROKER.RHH_VACACIONES_PARAMETRIZACION where ANO = (select MAX(ANO) from BROKER.RHH_VACACIONES_PARAMETRIZACION)";
                rs = con.EjecutarConsulta(consulta);
                if(rs.next())
                    return rs.getInt("HORAS");
                else
                    return 0;
            }                
        }
        else
            return 0;
    }

    public List<RHH_VACACIONES_PARAMETRIZACION> Cargar(ResultSet rs) throws SQLException {
        List<RHH_VACACIONES_PARAMETRIZACION> lista = new ArrayList<RHH_VACACIONES_PARAMETRIZACION>();
        while (rs.next()) {
            RHH_VACACIONES_PARAMETRIZACION objeto = new RHH_VACACIONES_PARAMETRIZACION(con);
            objeto.setANO(rs.getInt("ANO"));
            objeto.setHORAS(rs.getInt("HORAS"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getANO() {
        return ANO;
    }

    public void setANO(int ANO) {
        this.ANO = ANO;
    }

    public int getHORAS() {
        return HORAS;
    }

    public void setHORAS(int HORAS) {
        this.HORAS = HORAS;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }        
}
